[Инструкция] Установка Vaultwarden и Caddy с помощью Docker-Compose

Устанавливать Docker буду на Debian с помощью официального скрипта:

curl https://get.docker.com -o install.sh && sh install.sh

Добавляем в автозагрузку наш Docker:

systemctl enable docker.service

Проверяем что все установилось:

docker version
docker compose version

Создаем нужные директории и сам docker-compose.yml:

mkdir -p /app/vaultwarden
cd /app/vaultwarden
nano docker-compose.yml

Заполняем его следующим содержимым:

version: '3'

services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: always
    environment:
      WEBSOCKET_ENABLED: "true"
      SIGNUPS_ALLOWED: "true" #Меняем на false для закрытия регистрации
    volumes:
      - ./data:/data

  caddy:
    image: caddy:2
    container_name: caddy
    restart: always
    ports:
      - 80:80
      - 443:443
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile:ro
      - ./caddy-config:/config
      - ./caddy-data:/data
    environment:
      DOMAIN: "https://ВАШ_ДОМЕН.RU"
      EMAIL: "ВАША_ПОЧТА@gmail.com"
      LOG_FILE: "/data/access.log"

Создаем и наполняем содержимым наш Caddyfile:

nano Caddyfile
{$DOMAIN}:443 {
  log {
    level INFO
    output file {$LOG_FILE} {
      roll_size 10MB
      roll_keep 10
    }
  }


  tls {$EMAIL}

  encode gzip


  header {

  Strict-Transport-Security "max-age=31536000;"


  X-XSS-Protection "1; mode=block"


  X-Frame-Options "DENY"


  X-Robots-Tag "none"


  -Server
  }


  reverse_proxy /notifications/hub vaultwarden:3012

  reverse_proxy vaultwarden:80 {
       header_up X-Real-IP {remote_host}
  }
}

Запускаем наш Docker-Compose.yml файл и завершаем установку:

docker compose up -d

Обновление Vaultwarden:

Перейти в папку Vaultwarden:

cd /app/vaultwarden

Остановить текущие контейнеры:

docker compose down 

Скачать последнюю версию образа Vaultwarden:

docker pull vaultwarden/server:latest

Перезапустить контейнеры с новым образом:

docker compose up -d

Проверка версии Vaultwarden

1. Через логи Docker

docker logs vaultwarden 2>&1 | grep -i "version"

(Замените vaultwarden на имя своего контейнера, если оно другое). В самом начале логов при запуске он всегда пишет свою версию.

2. Через консоль внутри контейнера

docker exec -it vaultwarden /vaultwarden --version

Это выведет точную версию исполняемого файла.

3. Через Docker Inspect

Если вы хотите узнать версию образа (тег):

docker inspect vaultwarden | grep -i "version"